package com.didispace.chapter11.web

import com.didispace.chapter11.domain.Book
import io.swagger.annotations.Api
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController


/**
 * @author 田桂森 2020/7/18 0018
 * @RestController：Spring4之后加入的注解，原来在@Controller中返回json需要@ResponseBody来配合，
 * 如果直接用@RestController替代@Controller就不需要再配置@ResponseBody，默认返回json格式
 */
@RestController
@Api(tags = ["2-测试"])
class HelloController {
    /**
     * @RequestMapping：配置url映射。现在更多的也会直接用以Http Method直接关联的映射注解来定义，比如：GetMapping、PostMapping、DeleteMapping、PutMapping
     */
    @GetMapping("/hello")
    @PostMapping("/hello")
    fun index(): String {
        return "Hello World"
    }

    @RequestMapping("/hello2")
    fun index2(): Book {
        return Book()
    }
}